#ifndef __DEVELOP_USR_DEF_H
#define __DEVELOP_USR_DEF_H




// 0-无调试数据 
// 1-实时时域 2-实时chirp-sum 3-实时fft1d 4-实时+备份fft1d输出 5-fft1d-minus、cfarR 
// 6-实时时域+备份时域输出
//10-ana寄存器输出
#define TEST_MODE (0)
//#define IIC_OUTPUT
#if 1 /* 应用配置 */

#define DEMO_RX_ANT_NUM (2)
#define DEMO_CFG_SETS (0)   // 0-800M Demo  1-250M Demo
#define FLASH_WINRANGE // 使用flash窗(flash_def.c)

//#define TEST_LPW
//#define TEST_LPW_GPIO
#if defined(TEST_LPW)
#define TEST_FRAME_INTERVAL (100)
#endif


//#define LED_TRIGGER_ENABLE     // led trigger 配置
#if defined(LED_TRIGGER_ENABLE)
#define LED_INTERFACE_MODE  (0) // 0-OD 1-PP
#define LED_TRIGGER_MODE    (0) // 0-电平
#define LED_OUTPUT_GPIO     (5) // 支持gpio0.4 gpio0.5   4--gpio0.4  5--gpio0.5
#endif

#define APP_INDEPENDENT     // 独立应用
#define WINRANGE_ENABLE     // 加窗开关
#define LOWPOWER_ENABLE     // 低功耗开关
#define POINTRST_ENABLE     // 点云开关
//#define DBSCAN_ENABLE       // dbscan开关
#ifdef  POINTRST_ENABLE     // 点云输出接口
#define POINTRST_INTERFACE  (0) // 0 uart  1 spi
#endif
#endif

#ifdef TEST_LPW
#if defined(LED_TRIGGER_ENABLE)
#undef LED_TRIGGER_ENABLE
#endif

#if !defined(LOWPOWER_ENABLE)
#define LOWPOWER_ENABLE
#endif

//#if defined(POINTRST_ENABLE)
//#undef POINTRST_ENABLE
//#endif

#endif


#if 1 /* 基础配置 */
#define DYNALOAD_FW         (0) // 0-flash固件 1-动态加载固件
#define FLASH_INTERFACE     (0) // 0-single spi 1-qspi
#define UART_BAUDRATE       (0) // 0-2000000 1-115200		
#define UDF03_ROM_FUNCTION2 (0) // UDF03复刻ROM_FUNC2 0-不开启 1-开启  注: 本demo不支持开启
#endif





#if 1 /* 客制化数据配置 */

//#define CUSTOM_DATA_ENABLE

#ifdef  CUSTOM_DATA_ENABLE
// 客制化数据输出接口
#define CUSTOM_DATA_INTERFACE         (0) // 0 uart  1 spi
// 客制化数据输出格式
#define CUSTOM_DATA_FORMAT_ROW_COLUMN (0) // 0 chirp-row 1 chirp-column
// 客制化数据输出协议       TODO 暂用调试数据协议
#define CUSTOM_DATA_PROTOCOL_VER      (0) // 0-raw data 1-v1.0 protocol 2-v2.x protocol
#endif

#endif

#if 1 /* 调试数据配置 */

#define LOG_LEVEL (LOG_LEVEL_EMERG)

#define TEST_MODE_LOG_LEVEL (LOG_LEVEL_EMERG)

#if (TEST_MODE > 0)
#define DEBUG_DATA_ENABLE
#ifdef CUSTOM_DATA_ENABLE
#undef CUSTOM_DATA_ENABLE
#endif
#ifdef LOG_LEVEL
#undef LOG_LEVEL
#endif

#if !defined(LOG_LEVEL)
#define LOG_LEVEL (TEST_MODE_LOG_LEVEL)
#endif
#define LOG_ENABLE
#else
#if !defined(LOG_LEVEL)
#define LOG_LEVEL (LOG_LEVEL_EMERG) // 7--debug 5-notice   3-warning  1-error 0-emergcy
#endif
#endif


// ==1 - 天线1 
// ==2 - 天线2
// <3  - 天线1、天线2
// ==0 - 无 
#define DEBUG_DATA_ANT_FILTER(x)   (x==1)

// 调试数据输出帧协议
#define DEBUG_DATA_PROTOCOL_VER      (1) // 0-raw data 1-v1.0 protocol 2-v2.0 protocol
// 调试数据输出格式
#define DEBUG_DATA_FORMAT_ROW_COLUMN (0) // 0 chirp-row 1 chirp-column
// 调试数据输出接口
#define DEBUG_DATA_INTERFACE         (0) // 0 uart  1 spi
#endif

//#define MANUAL_FEATURE_SELECT  // 手动选择特性
#if defined(MANUAL_FEATURE_SELECT)      // 手动选择特性
#define BOARD_ID                   (1)  // 0-用户板 1-EVB 2-EVM-1T2R 3-EVM-1T1R
#define RAMP_BANDWIDTH             (0)  // 0-250M 1-800M  // 250M暂未支持
#define RANGE_RES_ENHANCE          (0)  // 0-无分辨率增强 1-分辨率增强
#define DEMO_RX_ANT_NUM            (2)  // 1-1T1R 2-1T2R
#else

//#define BOARD_EVB_250M          // 暂未支持
//#define BOARD_EVB_800M_5CM
#define BOARD_EVB_800M_20CM
//#define BOARD_EVM_1T1R_250M     // 暂未支持
//#define BOARD_EVM_1T1R_800M_5CM
//#define BOARD_EVM_1T1R_800M_20CM
//#define BOARD_EVM_1T2R_250M     // 暂未支持
//#define BOARD_EVM_1T2R_800M_5CM
//#define BOARD_EVM_1T2R_800M_20CM

/* 目标板 */
#if \
defined( BOARD_EVB_250M ) || \
defined( BOARD_EVB_800M_5CM ) || \
defined( BOARD_EVB_800M_20CM )
#define BOARD_ID                (1)  // 1-EVB
#endif

#if \
defined( BOARD_EVM_1T2R_250M ) || \
defined( BOARD_EVM_1T2R_800M_5CM ) || \
defined( BOARD_EVM_1T2R_800M_20CM )
#if defined(BOARD_ID)
#error redefined board_id
#endif
#define BOARD_ID                (2)  //2-EVM-1T2R
#endif

#if \
defined( BOARD_EVM_1T1R_250M ) || \
defined( BOARD_EVM_1T1R_800M_5CM ) || \
defined( BOARD_EVM_1T1R_800M_20CM )
#if defined(BOARD_ID)
#error redefined board_id
#endif
#define BOARD_ID                (3)  //3-EVM-1T1R
#endif


/*带宽*/
#if \
defined( BOARD_EVM_1T1R_250M ) || \
defined( BOARD_EVM_1T2R_250M ) || \
defined( BOARD_EVB_250M )
#define RAMP_BANDWIDTH          (0) // 250M
#else
#define RAMP_BANDWIDTH          (1) // 800M
#endif

/*分辨率增强*/
#if \
defined( BOARD_EVM_1T1R_800M_5CM ) || \
defined( BOARD_EVM_1T2R_800M_5CM ) || \
defined( BOARD_EVB_800M_5CM )
#define RANGE_RES_ENHANCE       (1) // 分辨率增强
#else
#define RANGE_RES_ENHANCE       (0) // 无分辨率增强
#endif


//#define DEMO_RX_ANT_NUM (2)  // 1-1T1R 2-1T2R

#endif

#if !defined(BOARD_ID) || !defined(RAMP_BANDWIDTH) || !defined(RANGE_RES_ENHANCE)
#error xxxx
//#else
//#if( BOARD_ID == 1 )
//#warning BOARD_ID 1
//#elif( BOARD_ID == 2 )
//#warning BOARD_ID 2
//#elif( BOARD_ID == 3 )
//#warning BOARD_ID 3
//#else
//#error df
//#endif

//#if( RAMP_BANDWIDTH == 0 )
//#warning RAMP_BANDWIDTH 0
//#else
//#warning RAMP_BANDWIDTH 1
//#endif

//#if( RANGE_RES_ENHANCE == 0 )
//#warning RANGE_RES_ENHANCE 0
//#else
//#warning RANGE_RES_ENHANCE 1
//#endif
#endif

#if ( BOARD_ID == 3 )
#ifdef DEMO_RX_ANT_NUM
#undef DEMO_RX_ANT_NUM
#endif
#define DEMO_RX_ANT_NUM (1)
#define LIGHT_DETECT // 光线检测
// 1T1R 主板有光敏电阻 用于检测光照
/*
	gpio0.1 ----100K-----photoresister---gpio0.2
	                                        |
																					= (10nF)
																					|
																				 GND
*/
#endif

#if 0 /* 基础配置 */
#define DYNALOAD_FW           (0) // 0-flash固件 1-动态加载固件
#define FLASH_INTERFACE       (0) // 0-single spi 1-qspi
#define UART_BAUDRATE         (1) // 0-2000000 1-115200	

#if (DYNALOAD_FW == 0)       // 注： 仅flash固件 支持UDF切换功能
#define DEMO_OUTER_UDF_SWITCH (0) // 多flash固件模式：无目标切换到外部独立UDF03应用
#define DEMO_INNER_UDF_SWITCH (0) // 扩展代码空间，切换到内部UDF01
#endif

#if UDF_EN_13 > 0
#define CODE_LOAD_ONCE     (1) // 只启动加载一次
#define SIMU_UDF05_ENABLE  (1) // 0-disable 1-enable
#define SIMU_UDF08_ENABLE  (1) // 0-disable 1-enable
#elif UDF_EN_03 > 0
#define UDF03_ROM_FUNCTION2 (0) // UDF03复刻ROM_FUNC2 0-不开启 1-开启，本demo固定为1
#endif

#endif


#if 0 /* 应用配置 */

#define LED_TRIGGER_ENABLE     // led trigger
#if defined(LED_TRIGGER_ENABLE)
#define LED_TRIGGER_PIN    (5)
#define LED_TRIGGER_ACTIVE (0)
#define LED_TRIGGER_IFS    (0) // 0-OD 1-PP
#define LED_TRIGGER_MODE   (0) // 0-电平
#endif

#define WINRANGE_ENABLE   // 加窗开关
#define LOWPOWER_ENABLE   // 低功耗开关
#define POINTRST_ENABLE   // 点云开关
//#define DBSCAN_ENABLE     // dbscan开关
#ifdef POINTRST_ENABLE    // 点云输出接口
#define POINTRST_INTERFACE    (0) // 0 uart  1 spi
#endif
#endif

#if 0 /* 客制化数据配置 */

//#define CUSTOM_DATA_ENABLE

#ifdef  CUSTOM_DATA_ENABLE
// 客制化数据输出接口
#define CUSTOM_DATA_INTERFACE         (0) // 0 uart  1 spi
// 客制化数据输出格式
#define CUSTOM_DATA_FORMAT_ROW_COLUMN (0) // 0 chirp-row 1 chirp-column
// 客制化数据输出协议       TODO 暂用调试数据协议
#define CUSTOM_DATA_PROTOCOL_VER      (2) // 0-raw data 1-v1.0 protocol 2-v2.x protocol
#endif

#endif

#if 0 /* 调试数据配置 */
// 0-无调试数据 1-时域加和frame、2-ant1、ant2 fft1d 3-ant2 fft1d-mean 4-ant2 fft2d 5-ant2 cfar 6-ant1 fft1d-mean 7-ant1 fft2d    10-ana寄存器输出
#define TEST_MODE (0)
#define DEBUG_DATA_ANT_FILTER(x)     (x<3) //x==1 x==2 x<3
#define DEBUG_DATA_FRAME_FILTER(x)   ((x%5)==0)  // 每5帧输出一次

//#define LOG_LEVEL (LOG_LEVEL_DEBUG)

#endif

#endif

